const mailer        = require('nodemailer');
const smtpTransport = require('nodemailer-smtp-transport');
const config        = require('../config');
const util          = require('util');
const logger = require('./logger');
// const transporter     = mailer.createTransport(smtpTransport(config.mail_opts));
const SITE_ROOT_URL = 'http://' + config.host;
const async = require('async');

var nodemailer = require('nodemailer');

//配置邮件
var transporter = nodemailer.createTransport(config.mail_opts);

//发送邮件
var sendmail = function(from, to, html){
    var option = {
        from: from,//发送邮件的邮箱
        to: to, //目标邮箱
        subject: config.name + '社区帐号激活',
        html: html
    };
    // option.subject = config.name + '社区帐号激活';
    // option.html= html;
    transporter.sendMail(option, function(error, response){
        if(error){
            logger.error('send mail error', error);
            console.log("fail: " + error);
        }else{
            console.log("success: "+ response);
        }
    });
};


exports.sendActiveMail = function (who, token, name) {
    // console.log('SITE_ROOT_URL', SITE_ROOT_URL);
    let from    = util.format('%s <%s>', config.name, config.mail_opts.auth.user);
    let to      = who;
    // let subject = config.name + '社区帐号激活';
    let html    = '<p>您好：' + config.name + '</p>' +
        '<p>我们收到您在' + config.name + '社区的注册信息，请点击下面的链接来激活帐户：</p>' +
        '<a href  = "' + SITE_ROOT_URL + '/active/' + name + '/' + token + '">激活链接</a>' +
        '<p>若您没有在' + config.name + '社区填写过注册信息，说明有人滥用了您的电子邮箱，请删除此邮件，我们对给您造成的打扰感到抱歉。</p>' +
        '<p>' + config.name + '社区 谨上。</p>';

    //调用发送邮件
    sendmail(from, to, html);
};

/**
 * Send an email
 * @param {Object} data 邮件对象
 */
// const sendMail = function (data) {
//     // if (config.debug) {
//     //     return;
//     // }
//
//     // 重试5次
//     async.retry({times: 5}, function (done) {
//         transporter.sendMail(data, function (err) {
//             if (err) {
//                 // 写为日志
//                 logger.error('send mail error', err, data);
//                 return done(err);
//             }
//             return done()
//         });
//     }, function (err) {
//         if (err) {
//             return logger.error('send mail finally error', err, data);
//         }
//         logger.info('send mail success', data)
//     })
// };
// exports.sendMail = sendMail;


/**
 * 发送激活通知邮件
 * @param {String} who 接收人的邮件地址
 * @param {String} token 重置用的token字符串
 * @param {String} name 接收人的用户名
 */
// exports.sendActiveMail = function (who, token, name) {
//     // console.log('SITE_ROOT_URL', SITE_ROOT_URL);
//     let from    = util.format('%s <%s>', config.name, config.mail_opts.auth.user);
//     let to      = who;
//     let subject = config.name + '社区帐号激活';
//     let html    = '<p>您好：' + name + '</p>' +
//         '<p>我们收到您在' + config.name + '社区的注册信息，请点击下面的链接来激活帐户：</p>' +
//         '<a href  = "' + SITE_ROOT_URL + '/active_account?key=' + token + '&name=' + name + '">激活链接</a>' +
//         '<p>若您没有在' + config.name + '社区填写过注册信息，说明有人滥用了您的电子邮箱，请删除此邮件，我们对给您造成的打扰感到抱歉。</p>' +
//         '<p>' + config.name + '社区 谨上。</p>';
//
//     exports.sendMail({
//         from: from,
//         to: to,
//         subject: subject,
//         html: html
//     });
// };
